home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 2
/
Nebula Two.iso
/
SourceCode
/
MiscKit1.7.1
/
MiscKitArchive.mbox
/
mbox
/
000168_misckit-reques…aska.et.byu.edu_Wed Apr 6 16:33:23 1994.msg
< prev
next >
Wrap
Internet Message Format
|
1994-10-30
|
5KB
Return-Path: <misckit-request@alaska.et.byu.edu>
Received: from alaska.et.byu.edu by darth.byu.edu (NX5.67d/NX3.0M)
id AA11819; Wed, 6 Apr 94 16:33:12 -0600
Received: from YVAX2.BYU.EDU by alaska.et.byu.edu; Wed, 6 Apr 1994 16:24:55 -0600
Received: from DIRECTORY-DAEMON by yvax.byu.edu (PMDF V4.3-7 #4169)
id <01HAV0H0KTDSR5NACH@yvax.byu.edu>; Wed, 6 Apr 1994 16:24:45 MDT
Received: from sonata.cc.purdue.edu by yvax.byu.edu (PMDF V4.3-7 #4169)
id <01HAV0GOSHLCQPGB2R@yvax.byu.edu>; Wed, 6 Apr 1994 16:24:29 MDT
Received: from waltz.cc.purdue.edu by sonata.cc.purdue.edu (NX5.67e/Purdue_CC)
id AA20600; Wed, 6 Apr 94 17:24:16 -0500
Received: by waltz.cc.purdue.edu (NX5.67e/NX3.0X) id AA08998; Wed,
6 Apr 94 17:24:14 -0500
Received: by NeXT.Mailer (1.95)
Received: by NeXT Mailer (1.95)
Date: Wed, 06 Apr 1994 17:24:14 -0500
From: kane@sonata.cc.purdue.edu (Christopher Kane)
Subject: More Re: Comments on MiscAgent
To: misckit@byu.edu
Reply-To: kane@cs.purdue.edu
Message-Id: <9404062224.AA20600@sonata.cc.purdue.edu>
Content-Transfer-Encoding: 7BIT
Ernest Prabhakar <ernest@pundit.cithep.caltech.edu> writes:
> The primary purpose of MiscAgent is to simplify the lazy loading
> and initialization of resources by using the responder chain to
> intercept messages. [Does "resources" basically mean either a nib
> or a bundle, plus its constituents?]
"purpose of MiscAgent *might be* to simplify"; otherwise this is
the general thought.
I used the phrase "birth of a notion" before; "conception" might
have been a better term.
> 1) how does the object know which classes implement which methods
> before loading.
As I've noted previously, this is one of the problems that needs
resolving. Some preprocessing at compile time into a class
specification file is one possibility.
> 2) how to manage lots of overlapping, dynamically added classes
> ("implicit programming" - I like the term!)
It depends on what you mean by "overlapping"; but this is something
else that needs to be solved.
> 3) How to make this have no more overhead than direct connections?
To be blunt: you don't. This is a classic power/speed tradeoff, like
you learn about in high school physics (and that come up in computer
science, too). It would be the same overhead, plus a bit, that
exists with NXBundles now; the first access can be quite slow.
> However, I think it needs to be as easy to setup a MiscAgent
> connection as it is to perform a direct connection. If one needs
> to parse the nib, create a subclass, and resolve conflicts
> manually, much of the advantage will be lost.
Well, you know about as much as I do about what might be eventually
required. Few things, though, are strictly drop-in and go.
> I suspect that if we are to find a truly usable suggestion, it would be
> best to start with an existing situation and work to abstract it. Two
> classes that come to mind are MiscNibController and MiscInfoController.
Exactly my plans. I've got a directory into which I've copied these
classes and some of my own (I've written a few of these Controller
type classes for apps I've written). But as well, I don't want to
be limited to what these do, or to suggest to other people that these
are examples of what I have in mind.
yackd@alaska.et.byu.edu (Don Yacktman) writes:
> I think the idea has merit, though, since it seems it could be more
> extensible than the current solution. The trick, as Ernie suggests,
> is to make sure that we are reducing the complexity of the solution
> and not increasing it. That's never easy to do. :-)
It depends on *where* you want to reduce complexity; again, this can
be a tradeoff. The easiest tools to use may have very sophisticated
implementations. (As a side note, though, I note that this isn't
always true of tools. A hammer is easier to operate than an automobile
is easier to operate than a nuclear power plant.)
> I think the hardest part will be making it transparent to set up
> knowing what methods a class responds to before it is loaded. You
> kind of need a flat file--"object.info" or somesuch--inside the
> bundle that the MiscAgent can look at before loading the bundle.
This (problem) also forces generality onto the MiscAgent.
For the past few days, thinking about this, I've had the feeling that
if only the Objective-C runtime where written in Objective-C (ie,
an NXObjCRuntime class, or Class objects that were fully objects, or
somesuch) that the reasons for having MiscAgent would go away, since
there would be a more appropriate place (and simpler implementation)
at which to modify the runtimes behavior (well, the AppKit's behavior,
too). And a few compiler/linker changes as well... Ah, well...
You know, when NS 3.0 (3.1?) came out, there was talk (rumor?) that
bundles were the way of the future; nearly everything would be
"bundled", loaded on demand (though with disk access being a significant
limiting factor, one wonders if this would ever be popular). If
this is the case (for NS 4.0, possibly), then the compiler and runtime
changes must already be under way (if not done) at NeXT.
Well, one can dream...
Christopher Kane